#ifndef _CHARACTER_H
#define _CHARACTER_H

#include "Entity.h"

/* This is the class defining a character.
 * There is an invariant regarding HP: CurrentHP <= MaxHP.
 */
class Character : public Entity {
    public:        
        Character(int pMaxHP, int pSpeed);
        ~Character();

        void dispose();
        
        /* CurrentHP has to be > 0.
         * If the new CurrentHP > maxHP, the new CurrentHP is
         * simply set to maxHP.
         */
        void setCurrentHP(int);
        int getCurrentHP() const;

        /* Set a new maximum HP. 
         * If the current HP is larger than the new max HP,
         * the current HP is set to the new max HP. 
         * The invariant CurrHP > maxHP remains "intact"
         */
        void setMaxHP(int);
        int getMaxHP() const;
        
        /* Speed has to be > 0. */
        void setSpeed(int);
        int getSpeed() const;

    


    private:
    int mMaxHP;
    int mCurrentHP; //recall how CurrHP <= MaxHP
    int mSpeed;

    /* TODO:later on we should add 
     * primary weapon, secondary item, perks & whatnot.
     */     


};

#endif /* _CHARACTER_H */
